/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tiralabra;

/**
 *
 * @author semi
 */
public class Ruutu {
          private boolean kuljettava;
          private boolean avoin; /* onko avoimien listalla */
          private boolean vierailtu; /* suljettujen listan ylläpito */
          private boolean onkoValitullaReitilla; /*(auttaa kartan tulostamisessa lopuksi) */

          private short vanhemmanX;
          private short vanhemmanY; /* koordinaatit ruutuun, joka on sen vanhempi */
          private int lyhinMatka; /* lyhin tunnettu matka, joka on jo kuljettu, G-arvo */
          private int matkaArvio; /* arvio kokonaismatkan pituudesta valitulla heuristiikalla */

    public Ruutu (boolean onkoKuljettava) {
        kuljettava = onkoKuljettava;
        vierailtu = false;
        onkoValitullaReitilla = false;

        vanhemmanX = -1; /* validi koordinaatti alkaa nollasta */
        vanhemmanY = -1;
        lyhinMatka = -1; /* ei ole määritelty, että alku ja loppu ei voisi olla samassa pisteessä */
        matkaArvio = -1;
        
    }
    /* setterit */
    void asetaAvoimeksi (short X, short Y, int matka, int arvio) {
        vanhemmanX = X;
        vanhemmanY = Y;

        avoin = true;
        lyhinMatka = matka;
        matkaArvio = arvio;
        // System.out.println("avoimeksi asetettiin: X = "+X+" Y= "+Y);
    }

    void asetaVierailluksi () {
        vierailtu = true;
    }

    void valitulleReitille () {
        onkoValitullaReitilla = true;
    }

    /* getterit */

    boolean onkoKuljettava () {
        return kuljettava;
    }

    boolean onkoVierailtu () {
        return vierailtu;
    }

    boolean onkoAvoin () {
        return avoin;
    }

    int haeArvio () {
        return matkaArvio;
    }

    int haeLyhin () {
        return lyhinMatka;
    }

    short haeVanhemmanx () {
        return vanhemmanX;
    }

    short haeVanhemmany () {
        return vanhemmanY;
    }

    boolean onkoValittu () {
        return onkoValitullaReitilla;
    }
}
